The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventor(s), to the extent the work is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
Microprocessors and other processing elements access executable code. Executable code is thus stored in memory that is readily accessible to the microprocessor. In system-on-chip microprocessor products, the executable code is typically stored in Dynamic Random Access Memory (DRAM) or Synchronous Random Access Memory (SRAM). DRAM is well suited for storing executable code because it is relatively low cost and has a high density of memory cells, so that it takes up less space. One drawback to using DRAM to store executable code is that the DRAM is typically a separate component from the system-on-chip, necessitating external connections and increasing the overall footprint of the system-on-chip. SRAM or DRAM can also be included within the system-on-chip, eliminating the need for a separate component. This greatly increases the size, and hence cost of the system-on-chip.
In information theory and computer science, data compression involves encoding data using fewer bits than the data's original representation would use. Compression reduces the storage space needed to store the data. However, compressing data may also result in the necessity of data decompression, requiring additional time and processing. During decompression, the data is decoded to return the data to the original representation. Conventionally, compression and decompression are performed as quickly as possible to limit the consumption of resources and interference with a user. To this end, popular compression algorithms (e.g., LZ77) attempt to balance speed of compression with the effectiveness of the compression. Thus, while being capable of high speed performance, these compression algorithms may not provide maximal compression.